The thermometer code is a digital code which ideally consists of a series of binary ones followed by a series of binary zeros, or visa versa. The thermometer code thus ideally contains no zeroes in the series of ones, and visa versa. A thermometer code is very often used in analog-to-digital converters in order to convert an analog input signal, for example a measured voltage, into a digitally coded output signal.
Table 1 presented below shows a detailed representation of an n-bit thermometer code, where n denotes a positive integer with n≧2. In the example in Table 1 n=16. The code accordingly consists of n−1=15 digital signals. Including the case in which only zeros and only ones occur, n permutations thus exist for the n-bit thermometer code. An arbitrary bit of the number of bits D1 to D15 is designated as DI, where I is a consecutive integer. In the case of an arbitrary value of P in the digital range of P=0 to P=15, each bit DI has a logic “zero” if I>P and each bit DI is a logic “one”, if I≦P. This functional relationship explains the concept that the extent of the series of ones increases by one each time when P increases by one. P thus represents the digital equivalent of the analog input signal, for example of the analog input voltage, that is to say P corresponds to the decimal value which, after the conversion by the corresponding analog-to-digital converter, is intended to be provided at its output.
TABLE 1Decimalvalue of the16-bit thermometerBinarythermometercodeoutput codecodePD15...........................D1<000000000000000000000000000000000000000000100000000000000100011200000000000001100102300000000000011100113400000000000111101004500000000001111101015600000000011111101106700000000111111101117800000001111111110008900000011111111110019100000011111111111010101100001111111111110111112000111111111111110012130011111111111111101131401111111111111111101415111111111111111111115>15111111111111111111115
Besides the column with the 16-bit thermometer code, a further column is specified which represents the 4-bit binary code which is intended to be generated in the event of a conversion ideally from the thermometer code.
Converting a thermometer code into a binary code requires a conversion circuit, as is presented for example in the European patent EP 632 598 B1.
Accordingly, in order to convert a thermometer code into a binary code, the individual bits of the thermometer code which are present at a respective output of a comparator are fed to a counter device, which successively counts the output bits of the comparators in the bit sequence of the thermometer code and thereby generates the thermometer code.
Said counter device becomes extraordinarily extensive in particular for those applications in which a thermometer code having a large number of bits, for example a 16-bit or 32-bit thermometer code, is intended to be converted into a binary code. An added difficulty is that, in this case, the conversion of the thermometer code into the binary code takes a very long time on account of the successive counting of the different thermometer code bits. Such a conversion circuit thus cannot be used at all, or can only be used to a limited extent, for high-frequency applications.
The abovementioned comparators which provide the thermometer code on the output side have a data input, into which an analog signal of an output stage is in each case coupled. The second comparator input is typically connected to a reference voltage source via which a reference potential can be fed to a comparator. The comparators in each case provide a digital output signal at their outputs in a manner dependent on the comparison of the analog input signal with the reference signal. If the input signal exceeds the value of the reference potential, then a logic “one” is typically present at the output, whereas for the case where the input signal is less than the reference potential, a logic “zero” is present at the output.
An operation for measurement of an analog signal value thus typically produces a thermometric digital signal whose successive bits have at most a single transition between a group of successive bits having the value “one” and a residual group of successive bits having the value “zero”.
TABLE 2Determined value16-bitof the decimalCorrect value ofthermometer codecodethe decimal code0000000000000000000000000000000111000000000000010120000000000001012300000000000101134000000000010111450000000001011115600000000101111167000000010111111780000001011111118900000101111111191000001011111111110110001011111111111112001011111111111121301011111111111113141011111111111111415
A further problem now consists in the fact that, on account of an erroneous comparison in the comparator stage, occasionally a “one” mistakenly passes into the series of zeros, or visa versa. This type of error is extremely rare and is referred to below as transition bit error since there is at least one additional transition between zeros and ones. In the literature, this type of error is often also referred to as decision error or “bubbles”.
Table 2 above shows an example of a 16-bit thermometer code having transition bit errors. Besides the column with the decimal value of the measured signal, table 2 shows a further column with the decimal value which is output on account of the transition bit error. A transition bit error normally occurs near the region in which the code has its intended transitions between zeros and ones. In order to eliminate such errors caused by transition bit errors, conversion circuits are often equipped with a correction circuit, as are described for example in the document EP 632 598 B1 already cited.
The disadvantage of such error eliminating circuits consists primarily in the fact that this necessitates a further circuitry outlay for eliminating errors in addition to the considerable circuitry outlay for the converter. However, the additional circuitry outlay required for this is in turn detrimental to the performance, in this case in particular the rapidity, of the conversion circuit, so that such conversion circuits are only suitable for converting thermometer codes having a low number of bits.